15: CLASS
15: CLASS_ID(Quicksort)
15: LCBR
16: INT
16: LB
16: RB
16: ID(a)
16: SEMI
18: INT
18: ID(partition)
18: LP
18: INT
18: ID(low)
18: COMMA
18: INT
18: ID(high)
18: RP
18: LCBR
19: INT
19: ID(pivot)
19: ASSIGN
19: ID(a)
19: LB
19: ID(low)
19: RB
19: SEMI
20: INT
20: ID(i)
20: ASSIGN
20: ID(low)
20: SEMI
21: INT
21: ID(j)
21: ASSIGN
21: ID(high)
21: SEMI
22: INT
22: ID(tmp)
22: SEMI
24: WHILE
24: LP
24: TRUE
24: RP
24: LCBR
25: WHILE
25: LP
25: ID(a)
25: LB
25: ID(i)
25: RB
25: LT
25: ID(pivot)
25: RP
25: ID(i)
25: ASSIGN
25: ID(i)
25: PLUS
25: INTEGER(1)
25: SEMI
26: WHILE
26: LP
26: ID(a)
26: LB
26: ID(j)
26: RB
26: GT
26: ID(pivot)
26: RP
26: ID(j)
26: ASSIGN
26: ID(j)
26: MINUS
26: INTEGER(1)
26: SEMI
28: IF
28: LP
28: ID(i)
28: GTE
28: ID(j)
28: RP
28: BREAK
28: SEMI
30: ID(tmp)
30: ASSIGN
30: ID(a)
30: LB
30: ID(i)
30: RB
30: SEMI
31: ID(a)
31: LB
31: ID(i)
31: RB
31: ASSIGN
31: ID(a)
31: LB
31: ID(j)
31: RB
31: SEMI
32: ID(a)
32: LB
32: ID(j)
32: RB
32: ASSIGN
32: ID(tmp)
32: SEMI
33: ID(i)
33: ASSIGN
33: ID(i)
33: PLUS
33: INTEGER(1)
33: SEMI
34: ID(j)
34: ASSIGN
34: ID(j)
34: MINUS
34: INTEGER(1)
34: SEMI
35: RCBR
37: RETURN
37: ID(j)
37: SEMI
38: RCBR
40: VOID
40: ID(quicksort)
40: LP
40: INT
40: ID(low)
40: COMMA
40: INT
40: ID(high)
40: RP
40: LCBR
41: IF
41: LP
41: ID(low)
41: LT
41: ID(high)
41: RP
41: LCBR
42: INT
42: ID(mid)
42: ASSIGN
42: ID(partition)
42: LP
42: ID(low)
42: COMMA
42: ID(high)
42: RP
42: SEMI
43: ID(quicksort)
43: LP
43: ID(low)
43: COMMA
43: ID(mid)
43: RP
43: SEMI
44: ID(quicksort)
44: LP
44: ID(mid)
44: PLUS
44: INTEGER(1)
44: COMMA
44: ID(high)
44: RP
44: SEMI
45: RCBR
46: RCBR
48: VOID
48: ID(initArray)
48: LP
48: RP
48: LCBR
49: INT
49: ID(i)
49: ASSIGN
49: INTEGER(0)
49: SEMI
50: WHILE
50: LP
50: ID(i)
50: LT
50: ID(a)
50: DOT
50: LENGTH
50: RP
50: LCBR
51: ID(a)
51: LB
51: ID(i)
51: RB
51: ASSIGN
51: CLASS_ID(Library)
51: DOT
51: ID(random)
51: LP
51: ID(a)
51: DOT
51: LENGTH
51: MULTIPLY
51: INTEGER(2)
51: RP
51: SEMI
52: ID(i)
52: ASSIGN
52: ID(i)
52: PLUS
52: INTEGER(1)
52: SEMI
53: RCBR
54: RCBR
56: VOID
56: ID(printArray)
56: LP
56: RP
56: LCBR
57: INT
57: ID(i)
57: ASSIGN
57: INTEGER(0)
57: SEMI
59: CLASS_ID(Library)
59: DOT
59: ID(print)
59: LP
59: QUOTE("Array elements: ")
59: RP
59: SEMI
60: WHILE
60: LP
60: ID(i)
60: LT
60: ID(a)
60: DOT
60: LENGTH
60: RP
60: LCBR
61: CLASS_ID(Library)
61: DOT
61: ID(printi)
61: LP
61: ID(a)
61: LB
61: ID(i)
61: RB
61: RP
61: SEMI
62: CLASS_ID(Library)
62: DOT
62: ID(print)
62: LP
62: QUOTE(" ")
62: RP
62: SEMI
63: ID(i)
63: ASSIGN
63: ID(i)
63: PLUS
63: INTEGER(1)
63: SEMI
64: RCBR
65: CLASS_ID(Library)
65: DOT
65: ID(print)
65: LP
65: QUOTE("\n")
65: RP
65: SEMI
66: RCBR
68: STATIC
68: VOID
68: ID(main)
68: LP
68: STRING
68: LB
68: RB
68: ID(args)
68: RP
68: LCBR
69: INT
69: ID(n)
69: SEMI
71: IF
71: LP
71: ID(args)
71: DOT
71: LENGTH
71: NEQUAL
71: INTEGER(1)
71: RP
71: LCBR
72: CLASS_ID(Library)
72: DOT
72: ID(println)
72: LP
72: QUOTE("Unspecified array length")
72: RP
72: SEMI
73: CLASS_ID(Library)
73: DOT
73: ID(exit)
73: LP
73: INTEGER(1)
73: RP
73: SEMI
74: RCBR
76: ID(n)
76: ASSIGN
76: CLASS_ID(Library)
76: DOT
76: ID(stoi)
76: LP
76: ID(args)
76: LB
76: INTEGER(0)
76: RB
76: COMMA
76: INTEGER(0)
76: RP
76: SEMI
77: IF
77: LP
77: ID(n)
77: LTE
77: INTEGER(0)
77: RP
77: LCBR
78: CLASS_ID(Library)
78: DOT
78: ID(println)
78: LP
78: QUOTE("Invalid array length")
78: RP
78: SEMI
79: CLASS_ID(Library)
79: DOT
79: ID(exit)
79: LP
79: INTEGER(1)
79: RP
79: SEMI
80: RCBR
81: CLASS_ID(Quicksort)
81: ID(s)
81: ASSIGN
81: NEW
81: CLASS_ID(Quicksort)
81: LP
81: RP
81: SEMI
82: ID(s)
82: DOT
82: ID(a)
82: ASSIGN
82: NEW
82: INT
82: LB
82: ID(n)
82: RB
82: SEMI
84: ID(s)
84: DOT
84: ID(initArray)
84: LP
84: RP
84: SEMI
85: ID(s)
85: DOT
85: ID(printArray)
85: LP
85: RP
85: SEMI
86: ID(s)
86: DOT
86: ID(quicksort)
86: LP
86: INTEGER(0)
86: COMMA
86: ID(n)
86: MINUS
86: INTEGER(1)
86: RP
86: SEMI
87: ID(s)
87: DOT
87: ID(printArray)
87: LP
87: RP
87: SEMI
88: RCBR
89: RCBR
90: EOF
